package com.flow.odr.control.cdr;

import com.flow.odr.control.base.BaseController;
import com.flow.odr.control.cdr.dto.Cdr_Visit_Actual_Time_Department_Revenue_Dto_Bean;
import com.flow.odr.control.cdr.dto.Cdr_Visit_Actual_Time_Dto_Bean;
import com.flow.odr.control.cdr.dto.Cdr_Visit_Actual_Time_Hospitalization_Dto_Bean;
import com.flow.odr.control.cdr.dto.Cdr_Visit_Actual_Time_Income_Dto_Bean;
import com.flow.odr.service.cdr.Cdr_VisitregnType_Service;
import com.flow.odr.utils.LayDatas;
import com.flow.odr.utils.PageUtils;
import com.flow.odr.utils.ResultModel;
import com.flow.odr.utils.ResultTools;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *  @Author: Yan
 *  @Date: 2020/3/12
 *  @Description: 首页 - 控制器
 */
@Slf4j
@Controller
@Transactional
@RequestMapping(value = "/cdr_visitregntype")
public class Cdr_VisitregnType_Controller extends BaseController {

    @Autowired
    private Cdr_VisitregnType_Service cdr_visitregnType_service;    // 注入数据接口

    /**
     *  @Author: Yan
     *  @Date: 2020/3/12
     *  @Description: 首页 - 今日就诊量 - 门诊实时监控
     */
    @ResponseBody
    @PostMapping(value = "/cdr_visit_actual_time")
    public ResultModel cdr_visit_actual_time(){
        try {
            log.info("首页 - 今日就诊量 - 门诊实时监控 接口 ： cdr_visit_actual_time 开始!");
            List<Cdr_Visit_Actual_Time_Dto_Bean> cdr_visit_actual_time_dto_beans = cdr_visitregnType_service.cdr_visit_actual_time();   //  获取数据库数据
            log.info("success 结束!");
            return ResultTools.success(cdr_visit_actual_time_dto_beans);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("fail 结束:" +  e.getMessage() );
            return ResultTools.fail();
        }
    }

    /**
     *  @Author: Yan
     *  @Date: 2020/3/12
     *  @Description: 首页 - 今日就诊量 - 今日住院情况
     */
    @ResponseBody
    @PostMapping(value = "/cdr_visit_actual_time_hospitalization")
    public ResultModel cdr_visit_actual_time_hospitalization(){
        try {
            log.info("首页 - 今日就诊量 - 今日住院情况 接口 ： cdr_visit_actual_time_hospitalization 开始!");
            List<Cdr_Visit_Actual_Time_Hospitalization_Dto_Bean> cdr_visit_actual_time_hospitalization_dto_beans = cdr_visitregnType_service.cdr_visit_actual_time_hospitalization();//  获取数据库数据
            log.info("success 结束!");
            return ResultTools.success(cdr_visit_actual_time_hospitalization_dto_beans);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("fail 结束:" +  e.getMessage() );
            return ResultTools.fail();
        }
    }

    /**
     *  @Author: Yan
     *  @Date: 2020/3/12
     *  @Description: 首页 - 今日收入 - 今日收入
     */
    @ResponseBody
    @PostMapping(value = "/cdr_visit_actual_time_income")
    public ResultModel cdr_visit_actual_time_income(){
        try {
            log.info("首页 - 今日收入 - 今日收入 接口 ： cdr_visit_actual_time_rank 开始!");
            List<Cdr_Visit_Actual_Time_Income_Dto_Bean> cdr_visit_actual_time_income_dto_beans = cdr_visitregnType_service.cdr_visit_actual_time_income();//  获取数据库数据
            log.info("success 结束!");
            return ResultTools.success(cdr_visit_actual_time_income_dto_beans);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("fail 结束:" +  e.getMessage() );
            return ResultTools.fail();
        }
    }

    /**
     *  @Author: Yan
     *  @Date: 2020/3/12
     *  @Description: 首页 - 今日收入 - 科室排行
     */
    @ResponseBody
    @PostMapping(value = "/cdr_visit_actual_time_department_revenue")
    public ResultModel cdr_visit_actual_time_department_revenue(PageUtils pageUtils){
        try {
            log.info("首页 - 今日收入 - 可是排行 接口 ： cdr_visit_actual_time_department_revenue 开始!");
            Map<String,Object>cdr_visit_actual_time_department_revenue_dto_map = cdr_visitregnType_service.cdr_visit_actual_time_department_revenue(pageUtils);//  获取数据库数据
            log.info("success 结束!");
            return ResultTools.success(cdr_visit_actual_time_department_revenue_dto_map);
        } catch (Exception e) {
            e.printStackTrace();
            log.error("fail 结束:" +  e.getMessage() );
            return ResultTools.fail();
        }
    }

    /**
     *  @Author: Yan
     *  @Date: 2020/3/12
     *  @Description: 首页 - 今日收入 - 科室排行
     */
    @ResponseBody
    @GetMapping(value = "/cdr_visit_actual_time_finance_table")
    public LayDatas cdr_visit_actual_time_finance_table(PageUtils pageUtils){
        try {
            log.info("首页 - 今日收入 - 财政收入 接口 ： cdr_visit_actual_time_finance_table 开始!");
            LayDatas layDatas = cdr_visitregnType_service.cdr_visit_actual_time_finance_table(pageUtils);//  获取数据库数据
            log.info("success 结束!");
            return layDatas;
        } catch (Exception e) {
            e.printStackTrace();
            log.error("fail 结束:" +  e.getMessage() );
            return null;
        }
    }
}
